<?php

/**
 * Обертка цепочки фильтров.
 *
 */
abstract class Kernel_Wrapper {

    /**
     * Цепочка фильтров, которые нужно запустить в контексте обертки.
     *
     * @var array
     */
    private $filters = array();

    /**
     * Конструктор.
     *
     */
    public function __construct($filters) {
        $this->filters = $filters;
    }

    /**
     * Оборачивает цепочку фильтров в обработчик исключений.
     *
     */
    abstract public function run();

    /**
     * Запускает цепочку фильтров.
     *
     */
    protected function _chain() {
        Application::chain($this->filters);
    }
}
